#include<Ice/Ice.h>
#include<Printer.h>
using namespace std;
using namespace Demo;

class PrinterI:public Printer{
public:
      virtual void printString(const string & s,
                               const Ice::Current &);
      virtual int  getString(int a,int  b,
                               const Ice::Current &);
};

void   PrinterI::printString(const string & s,const Ice::Current &)
{
cout << s << endl;
}
int   PrinterI::getString(int  a,int b,const Ice::Current &)
{
cout << a+b << endl;
return a+b;
}
int main(int argc,char* argv[])
{
  int status = 0;
  Ice::CommunicatorPtr ic;              
  try{ ic = Ice::initialize(argc,argv);   
  Ice::ObjectAdapterPtr adapter = ic->createObjectAdapterWithEndpoints(  "SimplePtinterAdapter","tcp -h 222.18.151.232 -p 10000");
  Ice::ObjectPtr object= new PrinterI;
  adapter->add(object,ic->stringToIdentity("SimplePrinter"));
  adapter->add(object,ic->stringToIdentity("Simpleshow"));
  adapter->activate();         
  ic->waitForShutdown();
  }catch(const Ice::Exception & e)
   {
    cerr<<e<<endl;
    status=1;
   }catch(const char* msg)
    {
     cerr<< msg<<endl;
     status=1;
    }
  if (ic)
       ic->destroy();
       return status;
}
